package org.example.order.service;


import org.example.core.to.mq.OrderTo;
import org.example.core.utils.PageUtils;
import org.example.core.utils.R;
import org.example.order.bo.ConfirmOrderBo;
import org.example.order.dto.OrderDto;
import org.example.order.dto.OrderItemDto;
import org.example.order.vo.OrderConfirmVo;
import org.example.order.vo.OrderRespVo;
import org.example.order.vo.OrderRestVo;

/**
 * @author xiaojie_cc
 * @version 1.0
 */
public interface OrderService{

    // 订单页查看的数据
    OrderConfirmVo confirmOrder(ConfirmOrderBo confirmOrderBo);

    // 创建订单
    R<?> createOrder(OrderRestVo orderRestVo);

    // 查询订单状态
    Integer queryOrderStatus(String orderSn);

    void closeOrder(OrderTo order);

    // 查询订单和订单项的详细信息
    OrderRespVo queryOrderInfo(Long id);

    // 用户查看订单
    PageUtils queryMemberOrder(Integer pageNum, Integer pageSize, Integer status);
    // 删除订单
    int deleteOrder(Long orderId);
    // 确认收货
    int updateConfirm(Long orderId);
    // 取消订单
    int cancelOrder(Long orderId);

    PageUtils list(OrderDto orderDto);

    PageUtils orderItem(OrderItemDto dto);
}

